/*
 * Eleccion.java
 *
 * Created on 15 de mayo de 2007, 11:08 PM
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package InterfazBD;

import Beans.*;
import java.sql.*;

import java.util.*;

/**
 *
 * @author Marco
 */
public class Eleccion {
    
    private BeanEleccion datosEleccion;
    
     private LinkedList<ResuSet> elecciones;
    
    /** Creates a new instance of Eleccion */
    public Eleccion() {
    }

    /**
     * Getter for property datosEleccion.
     * @return Value of property datosEleccion.
     */
    public BeanEleccion getDatosEleccion() {
        return this.datosEleccion;
    }

    /**
     * Setter for property datosEleccion.
     * @param datosEleccion New value of property datosEleccion.
     */
    public void setDatosEleccion(BeanEleccion datosEleccion) {
        this.datosEleccion = datosEleccion;
    }
    
    /**
     * Agrega elecciones de los alumnos aun tema de seleccion multiple o excluyente
     */
    public void agregarEleccion() throws Exception
    {
        Conexion conexionBD = new Conexion();
        Connection conn = conexionBD.conectar();
        Statement stm = conn.createStatement();
         System.out.println("a introducir: "+datosEleccion.getIdAlumno()+ ", " +datosEleccion.getIdTema()+ ", " +datosEleccion.getIdOpcion());
        stm.execute("INSERT INTO web.eleccion (idAlumno, idTema, idOpcion) values (" +            
            datosEleccion.getIdAlumno()+ ", " +
            datosEleccion.getIdTema()+ ", " +
            datosEleccion.getIdOpcion()+")");       
        stm.close();
        conexionBD.desconectar();
    }
    
    /**
     * Devuelve true si existe un registro, false si no
     */
    public boolean existeEleccion(int idAlumno, int temaNro, int idOpcion) throws Exception
    {
        Conexion conexionBD = new Conexion();               
        Connection conn = conexionBD.conectar();        
        Statement stm = conn.createStatement();               
                
        ResultSet eleccion = stm.executeQuery("select * from web.eleccion " +
                    "where idalumno = "+idAlumno +" and "+
                    "idtema = "+temaNro+" and "+
                    "idopcion = "+idOpcion);
        
        boolean retornar = eleccion.next();
                
        stm.close();
        conexionBD.desconectar();
        
        return retornar;
    }
    
    /**
     * Trae las opciones que fueron marcadas por el alumno como respuesta
     */
    public void traerEleccionRespues(int idAlumno, int idExam) throws Exception{
        Conexion conexionBD = new Conexion();               
        Connection conn = conexionBD.conectar();        
        Statement stm = conn.createStatement();               
        
        elecciones = new LinkedList();
        ResultSet elec = stm.executeQuery("SELECT * " +
                                         "FROM web.eleccion " +
                                         "WHERE idalumno = "+idAlumno+" and " +
                                               "idtema in (select idtema from web.tema where idexamen = "+idExam + ") "+                                         
                                         "ORDER BY idopcion");
                
        while(elec.next()){                        
            ResuSet obj = new ResuSet();
            
            obj.SetColumna6(elec.getInt("idalumno"));
            obj.SetColumna7(elec.getInt("idtema"));
            obj.SetColumna8(elec.getInt("idopcion"));                        
                        
            elecciones.add(obj);            
        }     
    }
    
    /**
     * Devuelve el linked list a control
     */
    public LinkedList<ResuSet> getRespuesTema() {
        return elecciones;
    }
    
}
